package arg

//
//import (
//	"fmt"
//	"github.com/urfave/cli"
//	"db2s/global"
//	"os"
//)
//
//func CliHelp() (flag ConfigParameter, err error) {
//	app := cli.NewApp()
//	app.Name = global.ProcessName                                                                                                                                             //应用名称
//	app.Usage = fmt.Sprintf("An opensource table and data checksum/sync tool by %v\n   %v [global options] command [command options]", global.AuthorInfo, global.ProcessName) //应用功能说明
//	app.Author = global.AuthorInfo                                                                                                                                            //作者
//	app.Email = global.EmailInfo                                                                                                                                              //邮箱
//	app.Version = "2.3.4"
//	app.Commands = []cli.Command{
//		//配置启动参数
//		{
//			Name:  "start",
//			Usage: "enable service",
//			Flags: []cli.Flag{
//				&cli.IntFlag{
//					Name:        "httpPort,hp",
//					Usage:       "set http server port. For example: --httpPort 80 or -hp 80", //命令说明
//					Value:       80,                                                           //默认值
//					Required:    false,
//					Destination: &flag.Start.HttpPort, //赋值
//				},
//				&cli.IntFlag{
//					Name:        "tcpPort,tp",
//					Usage:       "set tcp server port. For example: --tcpPort 7684 or -tp 7684", //命令说明
//					Value:       7684,                                                           //默认值
//					Required:    false,
//					Destination: &flag.Start.HttpPort, //赋值
//				},
//			},
//			//Description: &rc.Active,
//		},
//		//配置停止参数
//		{
//			Name:  "stop",
//			Usage: "disable service",
//			Flags: []cli.Flag{
//				cli.StringFlag{},
//			},
//		},
//		//配置run 任务参数
//		{
//			Name:  "run",
//			Usage: "Run a command in a new task services",
//			Flags: []cli.Flag{
//				&cli.StringFlag{
//					Name:        "config,f",
//					Usage:       "Specifies config file. For example: --config gc.conf or -f gc.conf", //命令说明
//					Value:       "",                                                                   //默认值
//					Required:    true,
//					Destination: &flag.Run.Config, //赋值
//				},
//				&cli.StringFlag{
//					Name:        "name,n",
//					Usage:       "task process name. For example: --name gt1 or -n gt1", //命令说明
//					Value:       "",                                                     //默认值
//					Required:    false,
//					Destination: &flag.Run.TaskName, //赋值
//				},
//				&cli.BoolFlag{
//					Name:        "cpuOptimizer,cpu",
//					Usage:       "Enable CPU performance analysis. For example: --cpuOptimizer or -cpu", //命令说明
//					Required:    false,
//					Destination: &flag.Run.OptimizerSwitch.CpuOptimizer, //赋值
//				},
//				&cli.BoolFlag{
//					Name:        "memoryOptimizer,mem",
//					Usage:       "Enable memory performance analysis. For example: --memoryOptimizer or -mem", //命令说明
//					Required:    false,
//					Destination: &flag.Run.OptimizerSwitch.MemOptimizer, //赋值
//				},
//			},
//		},
//		//认证授权信息
//		{
//			Name:  "auth",
//			Usage: fmt.Sprintf("%v Authorization certification", global.ProcessName),
//			Flags: []cli.Flag{
//				&cli.StringFlag{
//					Name:  "authCode,ca",
//					Usage: "Machine authorization code. For example: --authCode or -ca",
//					Value: "",
//					//Required:    true,   当为true时，命令行输入必须提供该参数
//					Destination: &flag.AuthCode.Code,
//				},
//				&cli.BoolFlag{
//					Name:  "Certification-free,cf",
//					Usage: "Machine authorization code. For example: --certification-free or -cf",
//					//Required:    true,
//					Hidden:      true, //当为true时则隐藏该参数
//					Destination: &flag.AuthCode.CertificationFree,
//				},
//			},
//		},
//		//配置查看任务参数
//		{
//			Name:  "ps",
//			Usage: "List Task",
//			Flags: []cli.Flag{},
//		},
//		//配置停止任务参数
//		{
//			Name:  "stop",
//			Usage: "Stop one or more running task",
//			Flags: []cli.Flag{},
//		},
//		//配置查看任务日志
//		{
//			Name:  "logs",
//			Usage: "Fetch the logs of a task",
//			Flags: []cli.Flag{},
//		},
//		//task详细信息
//		{
//			Name:  "inspect",
//			Usage: "Return low-level information on task objects",
//			Flags: []cli.Flag{},
//		},
//	}
//	//app.Flags = []cli.Flag{
//
//	//	cli.StringFlag{
//	//		Name:        "active,a",                                                                          //命令名称
//	//		Usage:       "Operation mode.choose an option (start, stop, status) For example: --active or -a", //命令说明
//	//		Value:       "",                                                                                  //默认值
//	//		Destination: &rc.ActiveWay,                                                                       //赋值
//	//	},
//	//}
//	app.Action = func(c *cli.Context) { //应用执行函数
//		//if (rc.SecondaryL.DSnsV.SrcDSN != "" || rc.SecondaryL.DSnsV.DstDSN != "") && rc.Config != "" {
//		//	fmt.Println("Specify the config, srcDSN and dstDSN options at the same time, causing conflicts, run db2s with option --help or -h")
//		//	os.Exit(0)
//		//}
//		//if (rc.SecondaryL.DSnsV.SrcDSN == "" || rc.SecondaryL.DSnsV.DstDSN == "") && rc.Config == "" {
//		//	fmt.Println("If no options are specified, run db2s with option --help or -h")
//		//	os.Exit(0)
//		//}
//	}
//	if err = app.Run(os.Args); err != nil {
//		return
//	}
//	aa := os.Args
//	fmt.Println("------lll:", aa, flag.Run)
//	for i := range aa {
//		if aa[i] == "--help" || aa[i] == "-h" || aa[i] == "-v" || aa[i] == "--version" {
//			os.Exit(0)
//		}
//	}
//	return
//}
//
//func (rc *ConfigParameter) cliHelp() {
//
//}
